package com.myBlog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.myBlog.domain.ResponseResult;
import com.myBlog.domain.dto.RoleDTO;
import com.myBlog.domain.entity.Role;
import com.myBlog.domain.vo.PageVo;

import java.util.List;


/**
 * 角色信息表(Role)表服务接口
 *
 * @author makejava
 * @since 2023-03-19 10:16:30
 */
public interface RoleService extends IService<Role> {

    List<String> selectRoleKeyByUser(Long id);

    /**
     * 分页条件查询
     *
     * @param pageNum
     * @param pageSize
     * @param roleName
     * @param status
     * @return
     */
    ResponseResult<PageVo> list(Integer pageNum, Integer pageSize, String roleName, String status);

    /**
     * 修改状态
     *
     * @param roleDTO
     * @return
     */
    ResponseResult changeStatus(RoleDTO roleDTO);

    /**
     * 根据id查询权限信息
     *
     * @param roleId
     * @return
     */
    ResponseResult getRoleInfo(Long roleId);


    /**
     * 添加权限
     *
     * @param roleDTO
     * @return
     */
    ResponseResult addRole(RoleDTO roleDTO);

    /**
     * 修改权限
     *
     * @param roleDTO
     * @return
     */
    ResponseResult updateRole(RoleDTO roleDTO);

    /**
     * 根据id删除权限
     *
     * @param roleId
     * @return
     */
    ResponseResult delete(Long roleId);

    /**
     * 查询出所有角色
     *
     * @return {@link ResponseResult}
     */
    ResponseResult getListAllRole();
}

